package com.zheng.cms.admin.jms;

import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;

/**
 * ActiveMQ有三种消息监听器：MessageListener、SessionAwareMessageListener、MessageListenerAdapter。
 * 使用SessionAwareMessageListener监听器：
 *
 *   可能很多朋友被监听器吓到了，其实就是一个类，这个类实现了SessionAwareMessageListener接口，
 *  实现了onMessage（message，session）方法，当监听器所监听的队列有了数据后，就可以把数据获取到，并且使用。
 *  ---------------------
 点对点：
 消息生产者生产消息发送到queue中，然后消息消费者从queue中取出并且消费消息。这里要注意：
 消息被消费以后，queue中不再有存储，所以消息消费者不可能消费到已经被消费的消息。
 Queue支持存在多个消费者，但是对一个消息而言，只会有一个消费者可以消费。
 发布/订阅
 消息生产者（发布）将消息发布到topic中，同时有多个消息消费者（订阅）消费该消息。和点对点方式不同，发布到topic的消息会被所有订阅者消费。
 * */
public class MyMessageListener  implements MessageListener {
    @Override
    public void onMessage(Message message) {
        TextMessage textMessage=(TextMessage)message;
        try {
            System.out.println("MyMessageListener,接收到消息："+textMessage.getText());
        } catch (JMSException e) {
            e.printStackTrace();
        }
    }
}
